// 管理费用管理
var Costsg = Ext.data.Record.create([
	{name : 'tid',mapping : 'tid',type : 'int'}, 
	{name : 'cnumber',mapping : 'cnumber',type : 'string'}, 
	{name : 'charge',mapping : 'charge',type : 'float'},
	{name : 'debtorid',mapping : 'debtorid',type : 'int'},
	{name : 'debtorname',mapping : 'debtorname',type : 'string'},
	{name : 'accountid',mapping : 'accountid',type : 'int'},
	{name : 'accountname',mapping : 'accountname',type : 'string'},
	{name : 'userid',mapping : 'userid',type : 'int'},
	{name : 'username',mapping : 'username',type : 'string'},
	{name : 'ctype',mapping : 'ctype',type : 'string'},
	{name : 'createtime',mapping : 'createtime',type : 'string'},
	{name : 'content',mapping : 'content',type : 'string'},
	{name : 'balance',mapping : 'balance',type : 'float'},
	{name : 'memo',mapping : 'memo',type : 'string'}
	]);

var cm_costsg = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
	header : '发生日期',
	width : 90,
	dataIndex : 'createtime',
	renderer: renderDate,
	sortable : true
},{
	header : '经手人',
	width : 80,
	dataIndex : 'username',
	sortable : false
},{
	header : '内容',
	width : 100,
	dataIndex : 'content',
	sortable:true
	
},{
	header : '金额',
	width : 80,
	dataIndex : 'charge',
	sortable:true
	
},{
	header : '付款帐号',
	width : 80,
	dataIndex : 'cnumber',
	sortable : false
},{
	header : '备注',
	width : 100,
	dataIndex : 'memo',
	sortable : true
}]);

cm_costsg.defaultSortable = true;

var btn_add_costsg = new Ext.Button({
	text : '增加管理费用',
	iconCls : 'icon-add',
	handler : function() {
		window_add_costsg.show();
	}
});

var btn_edit_costsg = new Ext.Button({
	text : '修改管理费用',
	iconCls : 'icon-edit',
	handler : function() {
		var record = grid_costsg.getSelectionModel().getSelected();
		if (record) {
			window_edit_costsg.show();
		}
	}
});

var btn_del_costsg = new Ext.Button({
	text : '删除管理费用',
	iconCls : 'icon-del',
	handler : function() {
		var record = grid_costsg.getSelectionModel().getSelected();
		if (record) {
			Ext.Msg.confirm('确认删除管理费用', '你确定删除该条记录?', function(btn) {
				if (btn == 'yes') {
					Ext.Ajax.request({
						url : '/costs/deleteCostsg.action',
						params : {tid : record.data.tid},
						success : function() {grid_costsg.getStore().remove(record);
						
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '删除时发生错误,您没有删除的权限!',
								buttons : Ext.Msg.OK,
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			});
		}
	}
});

var text_search_costsg = new Ext.form.TextField({
	name : 'textSearchCostsg',
	width : 200,
	emptyText : '根据帐号模糊查询!',
	listeners : {
		'specialkey' : function(field, e) {
			if (e.getKey() == Ext.EventObject.ENTER) {
				searchCostsg();
			}
		}
	}
});

var searchCostsg = function() {
	ds_costsg.baseParams.conditions = text_search_costsg.getValue(); 
	ds_costsg.load({params : {start : 0,limit : 20}});
}

var btn_search_costsg = new Ext.Button({
	text : '查询',
	iconCls : 'icon-search',
	handler : searchCostsg
});

var ds_costsg = new Ext.data.Store({
	url : '/costs/findAllCostsg.action',
	reader : new Ext.data.JsonReader({totalProperty : 'totalProperty',root : 'root'}, 
	[{name : 'tid',mapping : 'tid',type : 'int'}, 
	{name : 'cnumber',mapping : 'cnumber',type : 'string'}, 
	{name : 'charge',mapping : 'charge',type : 'float'},
	{name : 'debtorid',mapping : 'debtorid',type : 'int'},
	{name : 'debtorname',mapping : 'debtorname',type : 'string'},
	{name : 'accountid',mapping : 'accountid',type : 'int'},
	{name : 'accountname',mapping : 'accountname',type : 'string'},
	{name : 'userid',mapping : 'userid',type : 'int'},
	{name : 'username',mapping : 'username',type : 'string'},
	{name : 'ctype',mapping : 'ctype',type : 'string'},
	{name : 'createtime',mapping : 'createtime',type : 'string'},
	{name : 'content',mapping : 'content',type : 'string'},
	{name : 'balance',mapping : 'balance',type : 'float'},
	{name : 'memo',mapping : 'memo',type : 'string'}
	])
});

var grid_costsg = new Ext.grid.EditorGridPanel({
	title : '管理费用管理',
	iconCls : 'icon-grid',
	loadMask : {msg : '数据加载中...'},
	width:600,
	region : 'center',
	cm : cm_costsg,
	ds : ds_costsg,
	sm : new Ext.grid.RowSelectionModel({singleSelect : true}),
	enableColumnMove : false,
	trackMouseOver : false,
	frame : true,
	clicksToEdit : 1,
	tbar : [btn_add_costsg,'-',btn_edit_costsg, '-', btn_del_costsg, '-',text_search_costsg, btn_search_costsg],
	bbar : new Ext.PagingToolbar({
		pageSize : 20,
		store : ds_costsg,
		displayInfo : true,
		displayMsg : '第 {0} - {1} 条  共 {2} 条',
		emptyMsg : "没有记录",
		items:[{   
                text: '导出到Excel',   
                tooltip: 'Excel',   
                handler: costsgExport // 
                        }]
	})
});

function costsgExport(){
	doExport(grid_costsg);
}
var window_add_costsg = new Ext.Window({
	title : '增加管理费用',
	width : 320,
	resizable : false,
	autoHeight : true,
	modal : true,
	closeAction : 'hide',
	listeners : {
		'hide' : function() {
			this.setTitle('增加管理费用');
			this.findById('accountnameg').ownerCt.form.reset();
		}
	},
	items : [new Ext.FormPanel({
		border : false,
		baseCls : 'x-plain',
		bodyStyle : 'padding:5px 5px 0',
		labelAlign : 'right',
		labelWidth : 70,
		defaults : {anchor : '93%',msgTarget : 'side'},
		defaultType : 'textfield',
		items : [{
			fieldLabel : '经手人',
			id : 'costsg.username',
			name : 'costs.username',
			allowBlank : false,
			maxLength : 30
		}, {
		   	xtype : 'combo',
			fieldLabel : '支取帐号',
			name : 'cnumber',
			hiddenName : 'costs.cnumber',
			valueField : 'cardnumber',
		    displayField : 'cardnumber',
		    mode : 'remote',
			store : ds_account_select,
			selectOnFocus : true,
			editable : true,
			allowBlank : false,
			triggerAction : 'all',
			loadingText : '加载中...',
			emptyText : '请选择所有帐号',
			listeners : {
				'select' : function(combo, record, index) {
					this.ownerCt.ownerCt.form.findField('costs.accountname').setValue(record.data.username);
					this.ownerCt.ownerCt.form.findField('costs.accountid').setValue(record.data.tid);
					this.ownerCt.ownerCt.form.findField('costs.debtorname').setValue(record.data.name);
					this.ownerCt.ownerCt.form.findField('costs.debtorid').setValue(record.data.owner);
					this.ownerCt.ownerCt.form.findField('balag').setValue(record.data.balance);
				},
				'expand' : function(){
					ds_account_select.load();
				}
			}
		   },
		    {
		    fieldLabel : '账户开户人',
			id : 'accountnameg',
			name : 'costs.accountname',
			allowBlank : false,
			readOnly:true},
		    {xtype : 'hidden',name : 'costs.accountid'}, 
		    {fieldLabel : '所属单位',
			id : 'debtornameg',
			name : 'costs.debtorname',
			allowBlank : false,
			readOnly:true},
		    {xtype : 'hidden',name : 'costs.debtorid'}, 
		    {
		  	xtype:'numberfield',
		 	fieldLabel : '账户余额',
		 	name : 'bala',
		 	id : 'balag',
		 	allowBlank : false,
		 	minLength : 1,
		 	readOnly:true,
		 	maxLength : 12
		  },
		   {
		  	xtype:'numberfield',
		 	fieldLabel : '发生金额',
		 	name : 'costs.charge',
		 	allowBlank : false,
		 	vtype:'balance',//自定义的验证类型
            vtypeText:'超过账户所剩余额',
            confirmTo:'balag',//要比较的另外一个的组件的id
		 	minLength : 1,
		 	maxLength : 12
		  },
		  {xtype: 'textarea',
		   	fieldLabel : '内容',
		   name : 'costs.content',
		   maxLength : 100
		   }
		  ,
		   {xtype: 'textarea',
		   	fieldLabel : '备注',
		   name : 'costs.memo',
		   maxLength : 100
		   }
		],
		buttonAlign : 'right',
		minButtonWidth : 60,
		buttons : [{
			text : '添加',
			handler : function(btn) {
				var frm = this.ownerCt.ownerCt.form;
				if (frm.isValid()) {
					btn.disable();
					frm.submit({
						waitTitle : '请稍候',
						url : '/costs/saveCostsg.action',
						waitMsg : '正在提交表单数据,请稍候...',
						success : function(form, action) {
							btn.enable();
							window_add_costsg.hide();
							ds_costsg.load({params : {start : 0,limit : 20}});
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '发生不明错误，请与管理员联系!',
								buttons : Ext.Msg.OK,
								fn : function() {
									unfield.focus(true);
									btn.enable();
								},
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			}
		}, {text : '重置',handler : function() {this.ownerCt.ownerCt.form.reset();}
		}, {text : '取消',handler : function() {
			window_add_costsg.hide();
			ds_costsg.load({params : {start : 0,limit : 20}});
		}
		}]
	})]
});

var window_edit_costsg = new Ext.Window({
	title : '修改管理费用',
	width : 320,
	resizable : false,
	autoHeight : true,
	modal : true,
	closeAction : 'hide',
	listeners : {
		'hide' : function() {
			this.setTitle('修改管理费用');
			this.findById('costsgd.tid').ownerCt.form.reset();
		},
		'show': function(){
			var record = grid_costsg.getSelectionModel().getSelected();
			this.findById('costsgd.tid').setValue(record.data.tid);
			this.findById('costsgd.username').setValue(record.data.username);
			this.findById('cnumbergd').setValue(record.data.cnumber);
			this.findById('balagd').setValue(record.data.balance);
			this.findById('accountnamegd').setValue(record.data.accountname);
			this.findById('costsgd.accountid').setValue(record.data.accountid);
			this.findById('costsgd.debtorname').setValue(record.data.debtorname);
			this.findById('costsgd.debtorid').setValue(record.data.debtorid);
			this.findById('costsgd.charge').setValue(record.data.charge);
			this.findById('costsgd.content').setValue(record.data.content);
			this.findById('costsgd.memo').setValue(record.data.memo);
		}
	},
	items : [new Ext.FormPanel({
		border : false,
		baseCls : 'x-plain',
		bodyStyle : 'padding:5px 5px 0',
		labelAlign : 'right',
		labelWidth : 70,
		defaults : {anchor : '93%',msgTarget : 'side'},
		defaultType : 'textfield',
		items : [{xtype : 'hidden',id:'costsgd.tid',name : 'costs.tid'},{
			fieldLabel : '经手人',
			id : 'costsgd.username',
			name : 'costs.username',
			allowBlank : false,
			maxLength : 30
		},{
		   	xtype : 'combo',
			fieldLabel : '支取帐号',
			id:'cnumbergd',
			name : 'cnumber',
			hiddenName : 'costs.cnumber',
			valueField : 'cardnumber',
		    displayField : 'cardnumber',
		    mode : 'remote',
			store : ds_account_select,
			selectOnFocus : true,
			editable : true,
			allowBlank : false,
			triggerAction : 'all',
			loadingText : '加载中...',
			emptyText : '请选择所有帐号',
			listeners : {
				'select' : function(combo, record, index) {
					this.ownerCt.ownerCt.form.findField('costs.accountname').setValue(record.data.username);
					this.ownerCt.ownerCt.form.findField('costs.accountid').setValue(record.data.tid);
					this.ownerCt.ownerCt.form.findField('costs.debtorname').setValue(record.data.name);
					this.ownerCt.ownerCt.form.findField('costs.debtorid').setValue(record.data.owner);
					this.ownerCt.ownerCt.form.findField('bala').setValue(record.data.balance);
				},
				'expand' : function(){
					ds_account_select.load();
				}
			}
		   },
		    {
		    fieldLabel : '账户开户人',
			id : 'accountnamegd',
			name : 'costs.accountname',
			allowBlank : false,
			readOnly:true},
		    {xtype : 'hidden',id : 'costsgd.accountid',name : 'costs.accountid'}, 
		    {fieldLabel : '所属单位',
			id : 'costsgd.debtorname',
			name : 'costs.debtorname',
			allowBlank : false,
			readOnly:true},
		    {xtype : 'hidden',id : 'costsgd.debtorid',name : 'costs.debtorid'}, 
		    {
		  	xtype:'numberfield',
		 	fieldLabel : '账户余额',
		 	name : 'bala',
		 	id : 'balagd',
		 	allowBlank : false,
		 	minLength : 1,
		 	readOnly:true,
		 	maxLength : 12
		  },
		   {
		  	xtype:'numberfield',
		 	fieldLabel : '发生金额',
		 	id:'costsgd.charge',
		 	name : 'costs.charge',
		 	allowBlank : false,
		 	vtype:'balance',//自定义的验证类型
            vtypeText:'超过账户所剩余额',
            confirmTo:'balagd',//要比较的另外一个的组件的id
		 	minLength : 1,
		 	maxLength : 12
		  },
		  {xtype: 'textarea',
		   	fieldLabel : '报销内容',
		   	id : 'costsgd.content',
		   name : 'costs.content',
		   maxLength : 100
		   }
		  ,
		   {xtype: 'textarea',
		   	fieldLabel : '备注',
		   	id:'costsgd.memo',
		   name : 'costs.memo',
		   maxLength : 100
		   }
		],
		buttonAlign : 'right',
		minButtonWidth : 60,
		buttons : [{
			text : '保存',
			handler : function(btn) {
				var frm = this.ownerCt.ownerCt.form;
				if (frm.isValid()) {
					btn.disable();
					frm.submit({
						waitTitle : '请稍候',
						url : '/costs/updateCostsg.action',
						waitMsg : '正在提交表单数据,请稍候...',
						success : function(form, action) {
							btn.enable();
							window_edit_costsg.hide();
							ds_costsg.load({params : {start : 0,limit : 20}});
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '发生不明错误，请与管理员联系!',
								buttons : Ext.Msg.OK,
								fn : function() {
									unfield.focus(true);
									btn.enable();
								},
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			}
		}, {text : '取消',handler : function() {
			window_edit_costsg.hide();
			ds_costsg.load({params : {start : 0,limit : 20}});
		}
		}]
	})]
});


var p_costsg = {
	id : 'costsg-panel',
	border : false,
	layout : 'border',
	items : [grid_costsg]
};